FOR
사용자가 지정한 여러 개의 파일에 도스 명령어를 실행하기 위해 사용하는 명령어이다.
FOR 명령어는 배치 프로그램에 사용할 수 있고, 직접 프롬프트 상에서 사용할 수 있는데, 일반적으로 배치 프로그램에서 많이 사용되므로 FOR 명령어를 배치 프로그램 명령어로 분류하기도 한다.
■ 사용법
배치 프로그램에서의 FOR 명령어 사용 방법
FOR %%variable&bnsp; IN (set) DO command [command-para]
명령어 프롬프트에서의 FOR 명령어 사용 방법
FOR %variable IN (set) DO command [command-para]
■ 옵션 및 매개변수

%%variable 혹은 %variable | FOR 명령어에서 교체할 수 있는 변수를 지정한다. FOR 명령어에서는 지정된 명령어가 모든 파일을 처리할 때까지 %%variable(또는 %variable)을 모든 매개변수와 차례로 교체하여 사용한다. FOR 명령어를 수행하기 위해 배치 프로그램에서는 %%variable을 사용하고, 명령어 프롬프트에서는 %variable을 사용한다.
(set) | 지정한 명령어로 처리할 하나 이상의 파일이나 텍스트 문자열을 지정한다.
command | 지정된 (set)에 포함된 각 파일에서 수행하고자 하는 명령어를 지정한다.
command-para | 지정된 명령어가 매개변수나 옵션을 사용할 경우, 해당 옵션이나 매개변수를 지정한다.

■ 참고 사항
☞ IN과 DO 키워드 사용하기
IN과 DO는 매개변수나 옵션이 아니다. 그러나 이것은 FOR 명령어를 사용하기 위해 반드시 사용해야 할 키워드이다.
만약, FOR 명령어를 사용할 때 IN과 DO의 키워드 중 어느 하나를 생략하면 사용자가 지정한 명령어 형식이 적절하지 않다는 오류 메시지가 나타난다.
☞ 교체할 수 있는 변수 사용하기
%에서 %까지의 배치 매개변수와 혼란을 피하기 위하여 %1부터 %9까지의 숫자들을 제외한 모든 문자를 변수로 사용할 수 있다. 간단한 배치 프로그램에는 %%f나 %f와 같은 단일 문자가 필요한 전부가 될 수 있다.
사용자는 다른 교체 가능한 변수를 구별하기 위하여 복잡한 배치 프로그램에서 variable에 여러 값을 사용할 수 있다. 그러나 같은 명령어 라인에 여러 FOR 명령어를 인접하여 추가할 수 없다.
☞ 일련의 파일군을 지정하기
(set) 매개변수는 파일의 단일 그룹 혹은 다수의 파일 그룹을 지정할 수 있다. 또한 사용자는 파일 세트를 지정하기 위하여 와일드 카드(* 혹은 ?)를 사용할 수 있다.
다음은 모두 사용할 수 있는 파일 세트의 예이다.
(*.doc)
(*.doc *.txt *.me)
(jan*.doc jan*.rpt feb*.doc feb*.rpt)
(arp??2001.* ap??2001.*)
사용자가 FOR 명령어를 사용할 때 (set)에 있는 첫 번째 값은 %%variable(또는 %variable)을 대체한다. 그리고 DOS는 이 값을 처리하기 위해 지정한 명령어를 수행한다. 이것은 (set)에 있는 값에 해당하는 모든 파일을 모두 처리할 때까지 계속 된다.
■ 사용 예
TXT나 DOC 확장자를 가진 현행 디렉토리 내의 모든 파일의 내용을 디스플레이하는데 TYPE 명령어를 사용하고, 이를 위하여 FOR 명령의 교체 가능한 변수로 %f를 사용하려면 다음과 같이 FOR 명령어를 사용한다.
for %f in (*.txt *.doc) do type %f
위의 예에서 현행 디렉토리 내의 TXT나 DOC 확장자를 갖는 각각의 파일은 모든 파일을 화면에 표시할 때까지 %f 변수를 대신한다.
위의 예를 배치 프로그램에서 사용하려면 %f의 모든 발생을 %%f로 교체한다. 그렇지 않은 경우 변수는 무시되고 에러 메시지가 나타난다.
DOS는 지정된 명령어와 함께 사용하고자 하는 명령어 옵션과 파이프(|), 방향 전환 기호>)를 모두 지원한다. 예를 들어, 위의 예에서 출력을 화면으로 하는 대신에 PRN(디폴트 프린터)으로 방향을 전환하려면 다음과 같이 명령어를 사용한다.
for %f in (*.txt *.doc) do type %f > prn:
위의 예에서 PRN은 디폴트 프린터를 의미한다. 즉, PRN은 하나의 프린터를 가지고 있는 경우에 사용될 수 있는 명령어이다.
만약 둘 이상의 프린터와 연결되어 있다면 LPT1, LPT2 혹은 LPT3 등으로 연결된 프린터 포트를 정확히 지정해야만 한다.